package com.beiding.t;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.beiding.jsonanalyzer.Analyzer;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;

import java.io.File;

/**
 * @author 丁常磊
 * @date 2022/3/9 15:10
 */

public class 除外付款下单验证 {
//
//    public static void main(String[] args) {
//
//        //整单计算 获取cbid2
//
//        Analyzer zd = getReq("2022-03-09 16_09_2289   计算订单应付金额");
//
//        //先进行一次整单计算2的
//        zd.set("request.calc_billid", "");
//        zd.set("request.calc_mode", "2");
//        String cbid2 = request(zd).getString("calc_billid");
//
//        //整单计算 获取cbid0
//
//        zd.set("request.calc_mode", "0");
//        String cbid0 = request(zd).getString("calc_billid");
//
//        System.out.println(cbid0);
//        System.out.println(cbid2);
//
//        for (int i = 0; i < 30; i++) {
//
//
//            {
//
//
//                //只查不用券
//                Analyzer yqcq = getReq("2022-03-09 16_09_3362   查询券-积分");
//
//                //使用cbid0进行查券用券
//                yqcq.set("request.calc_billid", cbid0);
//
////        System.out.println(request(yqcq).format());
//
//
//                Analyzer r_yqcq = request(yqcq);
//                //暂时移除掉券列表
//                Object coupon_uses = r_yqcq.remove("coupon_uses");
//
//                //然后将 用券查券返回的报文作为参数 变换到calc_mode=2进行一轮计算
//
//                r_yqcq.set("calc_billid", cbid2);
//                r_yqcq.set("calc_mode", "2");
//
//                Analyzer zd_cp = zd.selfCopy();
//
//                zd_cp.set("request", r_yqcq);
//
//                Analyzer r_yq_cm2 = request(zd_cp);
//
//                r_yq_cm2.set("coupon_uses", coupon_uses);
//
//             /*   System.out.println("只查不用券返回结果=====>");
//                System.out.println(r_yq_cm2.format());
//                System.out.println();
//                System.out.println();*/
//            }
//
//
//            {
//
//
//                //用一张券 然后再查券
//                Analyzer yqcq = getReq("2022-03-09 16_09_3615   查询券-积分");
//
//                //使用cbid0进行查券用券
//                yqcq.set("request.calc_billid", cbid0);
//
////        System.out.println(request(yqcq).format());
//
//
//                Analyzer r_yqcq = request(yqcq);
//                //暂时移除掉券列表
//                Object coupon_uses = r_yqcq.remove("coupon_uses");
//
//                //然后将 用券查券返回的报文作为参数 变换到calc_mode=2进行一轮计算
//
//                r_yqcq.set("calc_billid", cbid2);
//                r_yqcq.set("calc_mode", "2");
//
//                Analyzer zd_cp = zd.selfCopy();
//
//                zd_cp.set("request", r_yqcq);
//
//                Analyzer r_yq_cm2 = request(zd_cp);
//
//                r_yq_cm2.set("coupon_uses", coupon_uses);
///*
//                System.out.println("用一张券后再查询=====>");
//                System.out.println(r_yq_cm2.format());
//                System.out.println();
//                System.out.println();*/
//            }
//        }
//
//    }
//
//
//    public static Analyzer request(Analyzer o) {
//
//        JSONObject request = o.getJsonObject("request");
//
//        String url = o.getString("url");
//
//        RestTemplate restTemplate = new RestTemplate();
//        HttpHeaders httpHeaders = new HttpHeaders();
//        HttpEntity<String> entity = new HttpEntity<>(request.toJSONString(), httpHeaders);
//
//        System.out.println("调用地址");
//        System.out.println(url);
//        System.out.println();
//        System.out.println("调用报文");
//        System.out.println(Analyzer.createInstance(request).format());
//        System.out.println();
//        String jsonObject = restTemplate.postForObject(url, entity, String.class);
//        Analyzer read = Analyzer.read(jsonObject);
//        if (!"0".equals(read.getString("returncode"))) {
//            System.err.println(read.format());
//            throw new RuntimeException("返回异常");
//        }
//
//        System.out.println("响应结果");
//        System.out.println(read.getAnalyzer("data").format());
//
//        System.out.println();
//        System.out.println();
//        return read.getAnalyzer("data");
//    }
//
//
//    public static Analyzer getReq(String name) {
//
//        File root = new File("C:\\Users\\lenovo\\Desktop\\报文日志\\info-60401891-20220309");
//
//        File[] listFiles = root.listFiles();
//
//        for (File listFile : listFiles) {
//            if (listFile.getName().contains(name)) {
//                return Analyzer.load(listFile);
//            }
//        }
//
//        return null;
//    }

}
